// Decompiled by DJ v3.7.7.81 Copyright 2004 Atanas Neshkov  Date: 2007-9-15 18:53:51

// Decompiler options: packimports(3) fieldsfirst ansi 
// Source File Name:   ht.java

package com.zelix;

import java.util.*;

// Referenced classes of package com.zelix:
//            gt, ug, fh, ko, 
//            wb, vg, lt, mt, 
//            fy, wu, qy, tb, 
//            ed

public class ht extends gt
{

    private qy g;
    private Vector h;
    private Vector i;
    private qy j;
    private ArrayList k;
    private HashSet l;
    private Hashtable m;
    private static String z[];

    ht(mt amt[])
    {
        b(amt);
    }

    void a(fh fh1, Vector vector)
    {
        Enumeration enumeration;
        boolean flag;
        flag = tb.b;
        if(fh1.c() != null)
            break MISSING_BLOCK_LABEL_54;
        enumeration = fh1.p();
        if(enumeration == null)
            break MISSING_BLOCK_LABEL_59;
        if(!flag) goto _L2; else goto _L1
_L1:
        a((fh)enumeration.nextElement(), vector);
_L2:
        if(enumeration.hasMoreElements()) goto _L1; else goto _L3
_L3:
        if(!flag)
            break MISSING_BLOCK_LABEL_59;
        vector.addElement(fh1);
    }

    void a(mt amt[])
    {
        int i1;
        boolean flag;
        flag = tb.b;
        m = new Hashtable();
        i1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        m.put(amt[i1].j(), amt[i1]);
        i1++;
_L2:
        if(i1 >= amt.length)
            return;
        if(true) goto _L1; else goto _L3
_L3:
    }

    void b(mt amt[])
    {
        Hashtable hashtable;
        int i1;
        boolean flag2;
        flag2 = tb.b;
        g = new qy();
        j = new qy();
        h = new Vector();
        k = new ArrayList();
        l = new HashSet();
        i = new Vector();
        a(amt);
        hashtable = new Hashtable();
        fh.A();
        i1 = 0;
        if(!flag2) goto _L2; else goto _L1
_L1:
        Object obj;
        obj = fh.a(amt[i1].j(), amt[i1]);
        fh fh1 = fh.a(amt[i1].z(), a(amt[i1].z()));
        ((fh) (obj)).g(fh1);
        fh1.c(((fh) (obj)));
        g.b(fh1, obj);
        if(amt[i1].t() <= 0) goto _L4; else goto _L3
_L3:
        int k1 = 0;
        if(!flag2) goto _L6; else goto _L5
_L5:
        String s1 = amt[i1].b(k1);
        fh fh2 = fh.a(s1, a(s1));
        j.b(obj, fh2);
        ((fh) (obj)).d(fh2);
        fh2.a(((fh) (obj)));
        k1++;
_L6:
        if(k1 < amt[i1].t()) goto _L5; else goto _L4
_L4:
        if(amt[i1].fb())
            l.add(obj);
        if(amt[i1].hb())
        {
            String s = amt[i1].P();
            if(s != null)
                hashtable.put(amt[i1], s);
        }
        i1++;
_L2:
        if(i1 < amt.length) goto _L1; else goto _L7
_L7:
        obj = g.e();
        if(!flag2) goto _L9; else goto _L8
_L8:
        Object obj1 = ((Enumeration) (obj)).nextElement();
        if(!g.a(obj1))
            h.addElement(obj1);
        Vector vector = g.d(obj1);
        Collections.sort(vector);
_L9:
        if(((Enumeration) (obj)).hasMoreElements()) goto _L8; else goto _L10
_L10:
        int j1;
        Collections.sort(h);
        j1 = 0;
        if(!flag2) goto _L12; else goto _L11
_L11:
        Object obj2;
        Vector vector1;
        boolean flag;
        int i2;
        if(!amt[j1].E())
            continue; /* Loop/switch isn't completed */
        obj2 = fh.b(amt[j1].j());
        vector1 = j.d(obj2);
        if(vector1 == null)
        {
            k.add(obj2);
            if(!flag2)
                continue; /* Loop/switch isn't completed */
        }
        flag = false;
        i2 = 0;
        if(!flag2) goto _L14; else goto _L13
_L13:
        fh fh4 = (fh)vector1.get(i2);
        if(!fh4.w())
            continue; /* Loop/switch isn't completed */
        flag = true;
        if(!flag2)
            break; /* Loop/switch isn't completed */
        i2++;
_L14:
        if(i2 < vector1.size()) goto _L13; else goto _L15
_L15:
        if(!flag)
            k.add(obj2);
        j1++;
_L12:
        if(j1 < amt.length) goto _L11; else goto _L16
_L16:
        a(new vg(), h.elements(), -1, i);
        obj2 = hashtable.keys();
        if(!flag2) goto _L18; else goto _L17
_L17:
        mt mt1 = (mt)((Enumeration) (obj2)).nextElement();
        String s2 = mt1.j();
        fh fh3 = fh.b(s2);
        String s3 = (String)hashtable.get(mt1);
        fh fh5 = fh.b(s3);
        if(fh5 != null && fh5.w())
        {
            fh5.b(fh3);
            fh3.e(fh5);
            String s4 = fh3.c().Q();
            if(s4 == null)
                continue; /* Loop/switch isn't completed */
            fh fh6 = fh.b(s4);
            if(fh6 == null)
                continue; /* Loop/switch isn't completed */
            fh3.f(fh6);
            if(!flag2)
                continue; /* Loop/switch isn't completed */
        }
        fh3.c().b(true);
        boolean flag1 = l.remove(fh3);
_L18:
        if(((Enumeration) (obj2)).hasMoreElements()) goto _L17; else goto _L19
_L19:
        int l1 = 0;
        if(!flag2) goto _L21; else goto _L20
_L20:
        mt mt2 = amt[l1];
        if(mt2.gb())
            mt2.pb();
        l1++;
_L21:
        if(l1 >= amt.length)
        {
            k();
            return;
        }
        if(true) goto _L20; else goto _L22
_L22:
    }

    private String a(String s, String s1, String s2, String s3)
    {
        String s4 = lt.a(s);
        String s5 = lt.a(s2);
        String s6 = lt.a(s3);
        String s7 = z[3] + s4 + z[7] + s1 + z[4] + s5 + z[1] + z[6] + z[9] + s5 + z[0] + s6 + z[2] + s4 + z[5] + s5 + z[8];
        return s7;
    }

    mt a(String s)
    {
        return (mt)m.get(s);
    }

    Enumeration a()
    {
        return Collections.enumeration(l);
    }

    fh a(int i1)
    {
        return (fh)i.elementAt(i1);
    }

    Enumeration g()
    {
        return i.elements();
    }

    ArrayList h()
    {
        return k;
    }

    public Vector i()
    {
        Vector vector;
        int i1;
        boolean flag;
        flag = tb.b;
        vector = new Vector();
        i1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        a((fh)h.elementAt(i1), vector);
        i1++;
_L2:
        if(i1 >= h.size())
            return vector;
        if(true) goto _L1; else goto _L3
_L3:
    }

    public boolean a(wu wu1, ko ko1)
        throws wb
    {
        Vector vector;
        int i1;
        boolean flag1;
        flag1 = tb.b;
        vector = i();
        i1 = 0;
        if(!flag1) goto _L2; else goto _L1
_L1:
        fh fh1 = (fh)vector.get(i1);
        mt mt1 = fh1.c();
        String s = mt1.j();
        boolean flag = a(s, ((lt) (mt1)), wu1, ko1, true);
        if(!flag)
            return false;
        i1++;
_L2:
        if(i1 >= vector.size())
            return true;
        if(true) goto _L1; else goto _L3
_L3:
    }

    private boolean a(String s, lt lt1, wu wu1, ko ko1, boolean flag)
        throws wb
    {
        String as[];
        int i1;
        boolean flag5;
        flag5 = tb.b;
        if(lt1.j().equals(z[15]))
            return true;
        String s1 = lt1.z();
        if(s1 != null)
        {
            mt mt1 = fh.a(s1);
            if(mt1 != null)
            {
                if(mt1.E())
                {
                    String s2 = lt.a(mt1.j());
                    wu1.a(z[3] + lt.a(lt1.j()) + z[13] + s2 + z[17] + s2 + z[10]);
                    return false;
                }
                if(flag)
                {
                    boolean flag1 = a(s1, ((lt) (mt1)), wu1, ko1, true);
                    if(!flag1)
                        return false;
                } else
                {
                    wu1.a(a(s1, z[14], lt1.j(), s));
                    return false;
                }
            } else
            {
                nt nt = ko1.a(s1);
                boolean flag2 = a(s, ((lt) (nt)), wu1, ko1, false);
                if(!flag2)
                    return false;
            }
        }
        as = lt1.u();
        i1 = 0;
        if(!flag5) goto _L2; else goto _L1
_L1:
        String s3 = as[i1];
        mt mt2 = fh.a(s3);
        if(mt2 != null)
        {
            if(!mt2.E())
            {
                String s4 = lt.a(s3);
                wu1.a(z[3] + lt.a(lt1.j()) + z[12] + s4 + z[17] + s4 + z[16]);
                return false;
            }
            if(flag)
            {
                boolean flag3 = a(s3, ((lt) (mt2)), wu1, ko1, true);
                if(!flag3)
                    return false;
            } else
            {
                wu1.a(a(s3, z[11], lt1.j(), s));
                return false;
            }
        } else
        {
            nt nt1 = ko1.a(s3);
            boolean flag4 = a(s, ((lt) (nt1)), wu1, ko1, false);
            if(!flag4)
                return false;
        }
        i1++;
_L2:
        if(i1 >= as.length)
            return true;
        if(true) goto _L1; else goto _L3
_L3:
    }

    void a()
    {
        HashSet hashset;
        Iterator iterator;
        boolean flag;
        flag = tb.b;
        if(l == null || l.size() <= 0)
            break MISSING_BLOCK_LABEL_73;
        hashset = new HashSet(l.size());
        iterator = l.iterator();
        if(!flag) goto _L2; else goto _L1
_L1:
        hashset.add(iterator.next());
_L2:
        if(iterator.hasNext()) goto _L1; else goto _L3
_L3:
        l = hashset;
    }

    void f()
    {
        l.clear();
    }

    void j()
    {
        Iterator iterator;
        boolean flag;
        flag = tb.b;
        iterator = l.iterator();
        if(!flag) goto _L2; else goto _L1
_L1:
        fh fh1 = (fh)iterator.next();
        mt mt1 = fh1.c();
        if(mt1 != null && !mt1.fb())
            iterator.remove();
_L2:
        if(!iterator.hasNext())
            return;
        if(true) goto _L1; else goto _L3
_L3:
    }

    public void a(ed ed, fy fy1)
    {
        Iterator iterator;
        boolean flag;
        flag = tb.b;
        iterator = l.iterator();
        if(!flag) goto _L2; else goto _L1
_L1:
        fh fh1 = (fh)iterator.next();
        mt mt1 = fh1.c();
        mt1.a(ed, fy1.b(mt1));
_L2:
        if(!iterator.hasNext())
            return;
        if(true) goto _L1; else goto _L3
_L3:
    }

    void k()
    {
        g.g();
        h.trimToSize();
        i.trimToSize();
        j.g();
        k.trimToSize();
    }

    void a(ug ug1, Enumeration enumeration, int i1, Object obj)
    {
        boolean flag = tb.b;
        if(enumeration == null) goto _L2; else goto _L1
_L1:
        i1++;
        if(!flag) goto _L4; else goto _L3
_L3:
        fh fh1 = (fh)enumeration.nextElement();
        ug1.a(fh1, i1, obj);
        a(ug1, g.c(fh1), i1, obj);
_L4:
        if(enumeration.hasMoreElements()) goto _L3; else goto _L2
_L2:
    }

    private static String z(char[] chs) {
        for (int i = 0; i < chs.length; i++) {
            byte key = 0;
            switch (i % 5) {
                case 0:
                    key =0x2e;
                    break;
                case 1:
                    key =117;
                    break;
                case 2:
                    key =102;
                    break;
                case 3:
                    key =15;
                    break;
                default:
                    key =113;
                    break;
            }
            chs[i] ^= key;
        }
        return new String(chs).intern();
    }


    static 
    {
        String as[];
        as = new String[18];
        as[0] = "\tU\017|QZ\035\003aQK\r\022j\037J\020\002/\036\\U\017b\001B\020\013j\037Z\020\002/\023WUA";
        as[1] = "\tU\021g\030M\035Fg\020]U\b`\005\016\027\003j\037\016\032\026j\037K\021Ff\037]\034\002jQ";
        as[2] = "\t[F[\031K\007\003/\034[\006\022/\023KU\b`QI\024\026|QG\033F{\031KU\t\177\024@\020\002/\030@\035\003}\030Z\024\bl\024\016\024\bkQG\030\026c\024C\020\b{\020Z\034\taQF\034\003}\020\\\026\016f\024][FJ\030Z\035\003}Q\t";
        as[3] = "m\031\007|\002\016R";
        as[4] = "\016\027\037/V";
        as[5] = "\tU\025g\036[\031\002/\037A\001Fm\024\016\032\026j\037K\021F`\003\016R";
        as[6] = "t\020\nf\t\016>\nn\002]8\007|\005K\007";
        as[7] = "\tU\017|Q";
        as[8] = "\tU\013z\002ZU\007c\002AU\004jQA\005\003a\024JU\000`\003\016\032\004i\004]\026\007{\030A\033H";
        as[9] = "\000UA";
        as[10] = "\tU\017|Q@\032\021/\020@U\017a\005K\007\000n\022K[";
        as[11] = "G\030\026c\024C\020\b{\024J";
        as[12] = "\tU\017b\001B\020\013j\037Z\006F(";
        as[13] = "\tU\003w\005K\033\002|Q\t";
        as[14] = "K\r\022j\037J\020\002";
        as[15] = "D\024\020n^B\024\bh^a\027\fj\022Z";
        as[16] = "\tU\017|Q@\032Fc\036@\022\003}QO\033Ff\037Z\020\024i\020M\020H";
        as[17] = "\tU\004z\005\016R";
        for(int i = 0;i<as.length;i++){
            as[i] = z(as[i].toCharArray());
        }
        z = as;

    }
}